const fs = require("fs");
// 加载express cookie-parper
const cookieParser = require("cookie-parser");
const express = require("express");
const app = express();
app.listen(3000, () => console.log("服务启动了"));

// 配置中间件
app.use(cookieParser());

// 显示 index.html 页面
app.get("/index.html", (req, res) => {
    // 先判断，cookie中isLogin是否为abcd
    if (req.cookies.isLogin != "abcd") {
        // 说明没有登录
        res.send(
            '<script>alert("请先登录"); location.href="/login.html";</script>'
        );
        return;
    }

    fs.readFile("./public/index.html", "utf-8", (err, data) => {
        if (err) return console.log(err);
        // 假设从数据库中查询了一条数据
        let title = "咏鹅";
        let author = "骆宾王";
        let content = "鹅鹅鹅，曲项向天歌";
        // 替换HTML中的 {{xxx}} 为实际的数据
        data = data.replace("{{title}}", title);
        data = data.replace("{{author}}", author);
        data = data.replace("{{content}}", content);
        // 把替换后的结果响应给客户端
        res.send(data);
    });
});

// 显示登录页面
app.get("/login.html", (req, res) => {
    fs.readFile("./public/login.html", "utf-8", (err, data) => {
        if (err) return console.log(err);
        // 把替换后的结果响应给客户端
        res.send(data);
    });
});

// 完成登录接口
app.use(express.urlencoded({ extended: false }));
app.post("/api/login", (req, res) => {
    // 假设账号是admin，密码是123
    if (req.body.username == "admin" && req.body.password == "123") {
        // 设置cookie
        // res.cookie('key', 'value', 配置对象);
        res.cookie("isLogin", "abcd", { maxAge: 1000 * 60 * 60 }); // 设置有效期为1个小时
        res.send({ status: 200, msg: "登录成功" });
    } else {
        res.send({ status: 500, msg: "登录失败" });
    }
});